package controller

import (
	"context"
	"github.com/gogf/gf/v2/util/gconv"
	"lot_admin_api/api"
	"lot_admin_api/internal/model"
	"lot_admin_api/internal/service"
)

var Coupon = cCoupon{}

type cCoupon struct{}

// AddCoupon  新增优惠券
func (h *cCoupon) AddCoupon(ctx context.Context, req *api.AddCouponReq) (res *model.CouponIdRes, err error) {
	id, _ := service.Coupon().AddCoupon(ctx, req)
	res = &model.CouponIdRes{
		Id: id,
	}
	return res, err
}

// UpdateCoupon  更新优惠券
func (h *cCoupon) UpdateCoupon(ctx context.Context, req *api.UpdateCouponReq) (res *model.CouponIdRes, err error) {
	id, _ := service.Coupon().UpdateCoupon(ctx, req)
	res = &model.CouponIdRes{
		Id: id,
	}
	return res, err
}

// DeleteCoupon  删除优惠券
func (h *cCoupon) DeleteCoupon(ctx context.Context, req *api.DeleteCouponReq) (res *model.CouponIdRes, err error) {
	id, _ := service.Coupon().DeleteCoupon(ctx, req)
	res = &model.CouponIdRes{
		Id: id,
	}
	return res, err
}

// CouponInfo  通过id获取优惠券
func (h *cCoupon) CouponInfo(ctx context.Context, req *api.CouponInfoReq) (res *model.CouponIdAndInfoRes, err error) {
	res, err = service.Coupon().SearchCoupon(ctx, req.Id)
	return res, err
}

// CouponList  获取优惠券列表
func (h *cCoupon) CouponList(ctx context.Context, req *api.CouponListReq) (res *model.CouponListPageRes, err error) {
	var reqInfo *model.CouponListReq
	_ = gconv.Scan(req, &reqInfo)
	res, _ = service.Coupon().CouponList(ctx, reqInfo)
	return res, err
}
